home *** CD-ROM | disk | FTP | other *** search
/ Netware Super Library / Netware Super Library.iso / pgm_tool / lu62 / proc / fflush.c < prev    next >
C/C++ Source or Header  |  1995-07-03  |  1KB  |  58 lines

  1. /*
  2.  * CopyRight 1995. Nicholas Poljakov all rights reserved.
  3.  */
  4. #include <malloc.h>
  5. #include <stdio.h>
  6. #include <dos.h>
  7. #include <flush.h>
  8. #include <state1.h>
  9. flush     (tp_id,
  10.            conv_id,
  11.            p_rc)
  12.  unsigned char tp_id[8];
  13.  unsigned long conv_id;
  14.  
  15.  struct   rc {
  16.  unsigned   int   prim ;
  17.  unsigned   long  sec  ; }  *p_rc;
  18.  
  19. {
  20.   union REGS inregs,outregs;
  21.   struct SREGS segregs;
  22.   struct flush *ptr;
  23.        char _near *dp1;
  24.        char _near *dp2;
  25.   int l;
  26.  
  27.      l = sizeof(struct flush);
  28.      if ((ptr = (char *)calloc(1,l)) == NULL) {
  29.         p_rc->prim = PORT_BUSY; /* ¡ÑΓ ñ«ßΓπ»¡«⌐ »á¼∩Γ¿ */
  30.         p_rc->sec = 0x00;
  31.         return(0);
  32.      }
  33.  
  34.      ptr->code=Flush; /* verb code */
  35.      ptr->e_cd=0x0000; /*  ex   */
  36.  
  37.      memcpy (ptr->tp_id,tp_id,8);
  38.  
  39.      ptr->conv_id = conv_id;
  40.      dp1 = FP_OFF( ptr );
  41.      dp2 = FP_SEG( ptr );
  42.      _asm
  43.          {
  44.             push  ds
  45.             mov   dx, word ptr dp1[0]
  46.             mov   ax, word ptr dp2[0]
  47.         mov   ds, ax
  48.             mov   ax, Flush
  49.             int   68h
  50.             pop   ds
  51.          }
  52.  
  53.      p_rc->prim = ptr->prim_rc;
  54.      p_rc->sec  = ptr->sec_rc;
  55.      free(ptr);
  56.      return(0);
  57. }
  58.